sprintf добавляет знак минус к нулю после округления - PullRequest
4 голосов
/ 03 августа 2011

Давайте сделаем некоторое округление

> round(-0.001, 2)
[1] 0

Я получаю ноль.

Теперь в сочетании со sprintf

> sprintf("%f", round(-0.001,2))
[1] "-0.000000"

Почему знак минус? Я ожидал 0.000000.

$R --version
R version 2.13.1 (2011-07-08)

1 Ответ

8 голосов
/ 03 августа 2011

Это природа чисел с плавающей запятой (IEEE 754), здесь определено -0.См -0 .

...