double num;
long iPart;
double fPart;
// Get user input
num = 2.3d;
iPart = (long) num;
fPart = num - iPart;
System.out.println("Integer part = " + iPart);
System.out.println("Fractional part = " + fPart);
产出:
Integer part = 2
Fractional part = 0.2999999999999998
# 1 楼答案
主要逻辑你必须首先找出小数点后有多少位
此代码适用于最多16位的任何数字。如果使用BigDecimal,则最多可以运行18位数字。将输入值(您的数字)放入变量“num”,这里是我硬编码的示例
# 2 楼答案
由于这个1年前的问题是由纠正问题主题的人提出的,并且这个问题被标记为jsp,并且这里没有人能够给出针对jsp的答案,因此下面是我针对jsp的贡献
使用JSTL(只需将jstl-1.2.jar放在} 标记,它可以完全按照您的需要,并且在
/WEB-INF/lib
)fmttaglib中即可。有一个^{maxFractionDigits
和maxIntegerDigits
属性的帮助下以非常简单的方式完成这里有一个SSCCE,只需复制、粘贴、运行它
输出:
就这样。无需借助原始Java代码对其进行处理
# 3 楼答案
不知道这是否更快,但我正在使用
# 4 楼答案
# 5 楼答案
http://www.java2s.com/Code/Java/Data-Type/Obtainingtheintegerandfractionalparts.htm
产出:
# 6 楼答案
最初的问题要求的是指数和尾数,而不是分数和整数部分
要从double中获取指数和尾数,可以将其转换为IEEE 754表示形式,并提取如下位: