现在是夏天,我正在尝试将过去的C程序转换为Java程序,并向其中添加更多内容。该程序很简单,它可以将数字转换为单词,而我添加的东西还可以将带有小数的数字转换为像1.01这样的单词,就是“一点一”。问题是,当我尝试输入-0.29时,它不起作用,但是使用正数(0.29)时,它确实可以打印零点二十九。
我尝试创建一个条件,如果一个数字小于-0.009而不是打印零点一(0.01),它将打印负零点一(-0.01),因为数学上-0.01小于-0.009。 / p>
if(((num == 0 || num <-0.009)&& x> 0){
if (num == 0){
System.out.print("zero point ");
}
else if (num < -0.009){
System.out.print("negative zero point ");
}
if (x > 0 && x < 10){
var = x / 1;
System.out.println(conversions[0][var] + "\n");
}
else if (x > 9 && x < 20) {
var = x % 10;
System.out.println(conversions[1][var] + "\n");
}
else if (x > 19 && x < 100) {
var = x / 10;
System.out.print(conversions[2][var] + " ");
var = x % 10;
System.out.println(conversions[0][var] + "\n");
}
}
我希望输出为:
输入数字:-0.29
零零点二十九
但是现实是:
输入数字:-0.29 输入号码:
答案 0 :(得分:1)
为什么不取数字的绝对值,对数字进行字符串计算,然后检查原始数字的符号?如果是负数,那么您可以在字符串的前面加上“负数”吗?