在计算高尔夫差点差值时,您应该将答案截断为1位小数而不进行舍入。不知道为什么,但......
我知道如何在mySQL中使用TRUNCATE()
SELECT TRUNCATE( 2.365, 1 );
// outputs 2.3
但我想知道sprintf()是否能做到这一点?我知道在浮点数中使用小数位的唯一方法是......
echo sprintf("%.1f", 2.365);
// outputs 2.4
答案 0 :(得分:7)
这是什么语言?假设它是C或其衍生物之一,并且假设您总是只想要一个小数位,并假设您的值总是非负的,那么您可以这样做:
float val = 12.3456;
val = floor(val*10.0)/10.0;
sprintf("%.1f", val);
有更好的方法吗?大概。这就是我想到的。
答案 1 :(得分:0)
我发现使用字符串操作更容易:让sprintf舍入为一个额外的有效数字,修剪,然后转换回浮点数
$locationNumber = 00
DO {
$locationNumber++
switch ($locationNumber) {
21 {$locationNumber++}
31 {$locationNumber++}
43 {$locationNumber += 3}
47 {$locationNumber++}
49 {$locationNumber++}
51 {$locationNumber++}
}
Write-Host $locationNumber
} while ($locationNumber -lt 53)