2014-01-16 56 views
1

Iam除以R中的兩個數字。分子是一個大整數(範圍以百萬計)除以13.00001 它取13.000001爲13和輸出這是有限的,只有一個小數位。 我需要輸出是uptil 2小數點,這是沒有發生。 (round(divison,1) format(nsmall = 2)使其達到2位小數,但將其轉換爲字符 as.numeric reconverts( )我試過了,格式和as.numeric,但是沒有結果 as.numeric reconverts它從字符但小數點後2位替換爲小數點後1位 當我用13.000001等數字整除整數時,有什麼辦法可以得到2位小數嗎?無法獲得所需的精度的兩個整數的分割在R

回答

3

小心不要混淆輸出和內部精度:

x <- 13e7/13.000001 

sprintf("%10.20f",x) 
#[1] "9999999.23076928965747356415" 

sprintf("%10.10f",x*13) 
#[1] "129999990.0000007600" 

sprintf("%10.10f",x*13.000001) 
#[1] "129999999.9999999851" 

與預期產出的差異是由於有限的floating point precision