使用Java double(或其他任何东西)来存储简单分数[duplicate]

问题描述 投票:4回答:4

这似乎是一个非常简单的错误:

double quarter = 1/4;

正在给予

0.0

有人知道为什么会这样吗?

我试图存储几乎所有从1/2到1/20的分数(仅存储在顶部为1而在底部为int的那些),所以我将无法立即输入小数对于所有的人。

我已经阅读并听说浮点数据类型不是存储分数的好方法,所以还有其他方法](在Java中吗?

这似乎是一个非常简单的错误:四分之一= 1/4;给0.0有人知道为什么会这样吗?我正在尝试存储从1/2到1/20的几乎所有分数(只是...

java math floating-point primitive-types
4个回答
10
投票

尝试:


4
投票

对于初学者,您正在尝试将1/4除以​​整数值,并将其截断。 1. / 4会正确地给您0.25;将数字1表示为double的其他方式包括1d1.0等。


1
投票

Java正在执行整数除法,因为您的分母是整数。


1
投票

之所以得到0.0,是因为除法是作为整数除法,然后将结果转换为float。试试这个,例如:double quarter = 1 / 4.0; -您应该(几乎)获得预期的结果。

© www.soinside.com 2019 - 2024. All rights reserved.