2016-02-19 4 views
1

Я хочу создать кнопку на калькуляторе, которая могла бы преобразовать положительное число в отрицательный, а также изменить отрицательное число на положительное число.Как реализовать кнопку плюс/минус в калькуляторе?

Вот код в JS:

function reverse_num(){ 
    var num = $("#p").text(); 
    if(num > 0){ 
     $("p").prepend("-"); 
    } 
    else if(num = 0) 
    { 
     $("p"); 
    } 
} 

Когда я хочу, чтобы преобразовать положительный в отрицательный, он отлично работает. Но я не знаю, что делать, когда я хочу удалить этот отрицательный знак.

Может ли кто-нибудь показать мне, как это сделать?

+0

'еще если (число = 0)' присваивает 0 до 'num'. Вы хотите 'else if (num == 0)' или 'else if (num === 0)'. – Andy

ответ

-1

Вы могли бы использовать это на два пути

Way 1: Вы можете удалить "-" с помощью replace('-', '');

Way 2: Вы можете также использовать multiplication по (-1)

function reverse_num(){ 
 
    var num = $("#p").text(); 
 
\t if(num > 0){  
 
     $("p").prepend("-"); 
 
\t } 
 
\t else if(num < 0){ 
 
     var num = $("#p").text().replace('-', ''); 
 
\t \t $("#p").text(num); 
 
\t } 
 
\t else if(num == 0){ 
 
\t $("#p"); 
 
\t } 
 
} 
 

 
reverse_num(); 
 

 
function reverse_num_version_2(){ 
 
    var num = $("#number").text(); 
 
\t if(num > 0){  
 
     $("#number").prepend("-"); 
 
\t } 
 
\t else if(num < 0){ 
 
     num = num * (-1); 
 
\t \t $("#number").text(num); 
 
\t } 
 
\t else if(num == 0){ 
 
\t $("#number"); 
 
\t } 
 
} 
 
reverse_num_version_2();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
<p id="p">-100</p> 
 

 
<div id="number">-100</div>

+0

Это работает ~ Спасибо ~ – Echo0831

+0

Добро пожаловать. –

+0

Это очень плохой способ выполнить задачу. Ваш код делает так много дополнительной работы. '.replace()' является строковой функцией, а OP строит калькулятор ... –

0

Вы должны использовать базовую математику и умножить на -1 при нажатии знака минус.

.: например

//Get the number 
var number = parseFloat($("#p").text()); 

//Reverse it 
function reverse_num(num) { 
    return (-num); // == (-1 * num) 
} 

//Replace the content of #p 
$("#p").text(reverse_num(number)); 

В "Oneliner"

$("#p").text(-(parseFloat($("#p").text()))); 
+0

Или поставить «-» перед номером будет достаточно: 'number = -number' – Adrian

+0

Действительно, я думаю, я пытался показать поток ... Но, тем не менее, обновился. –

+0

Спасибо за ваш совет ~ Я мог бы использовать текст метода JQery(), чтобы получить исходное число и отменить его, но как я могу установить этот номер в содержание p? – Echo0831

Смежные вопросы