Java:使用Math.abs并计算用于以后使用的频率

时间:2012-01-26 22:29:01

标签: java math count negative-number false-positive

我正在尝试编写一个修改分数的程序,我需要确保“ - ”负数只能正确输出一次。如果用户输入分子和分母并将它们都作为负数放入,则无法显示-1 / -2。同样只有一个负数,我不能显示1 / -2。我提出的解决方案是使用Math.abs从num和den中删除负数,然后在输出IF中添加负数。只需要使用一次Math.abs。如果它被使用了两次,我将包括逻辑,只输出num和den,并删除负数。 如何计算Math.abs的使用频率,并防止在用户输入num或den或两者的正数时出现误报。

目前我的代码只进行转换为绝对值的工作,因此我无需显示任何数据。

snum = Math.abs(num);

*其中num是用户输入的数字,snum是绝对转换的数字。

任何帮助都将不胜感激。

谢谢, INGUES

3 个答案:

答案 0 :(得分:5)

如果分母是负数,只需翻转两者的符号。

答案 1 :(得分:0)

不,在内部表示中保留减号,只有输出被破坏。这是我的解决方案:

String sign = (num * denom < 0)? "-" : "";
System.out.println(sign + Math.abs(num) + "/" + Math.abs(denom));

答案 2 :(得分:0)

伪代码:

if numerator < 0 and denominator < 0 then
   numerator = -numerator
   denominator = -denominator
   sign = '+'
elsif numerator < 0 then
   numerator = -numerator
   sign = '-'
elsif denominator < 0 then
   denominator = -denominator
   sign = '-'
end if

print sign, numerator, '/', denominator