Loading...
m.mihaylov avatar m.mihaylov 3 Точки

Toy Shop- PHP решение

Здравейте. Пуснах въпроса в старата тема за задачата, но я пускам и тук, дано повече гора я видят. При зададените входни данни в условието, получавам правилният резултат, смятам, че и логиката ми е вярна, но в Judge ми дават само 40%. Къде бъркам? https://pastebin.com/Uz5vXLUN

Тагове:
1
Programming Basics
Thedi avatar Thedi 200 Точки
Best Answer

Здравей,

Проблемът ти е, че ти задаваш следното нещо:

number_format($Difference,2)

И този начин на записване ще работи правилно само за малки числа. 
Пример за работещ код:

<?php

$number = 418.20;

echo number_format($number, 2); // 418.20

Проблемът идва когато зададеш много голямо число:
 

<?php

$number = 515757.5454;

echo number_format($number, 2); // 515,757.55

И в случай, че числото е голямо започва да ти се появява една "," защото number_format може да приема като опции и какъв символ да използва за да разделя дробната част на числото и с какъв символ да разделя хилядните. В случаят на твоят код ти не задаваш с какво да разделя хилядните и по подразбиране то използва "," 
За да работи кодът ти просто трябва да подадеш, че не искаш да разделя хидялните с запетая което става така:
 

<?php

$number = 515757.5454;

echo number_format($number, 2, ".", ""); // 515757.55

Първата опция е числото после е броят символи след десетичната запетая след което е опция за символ за разделяне на десетичната част и след това е символ за разделяне на хилядните в случая не искаме да има такъв за това подаваме празен стринг.

Ако промениш само това в решението ти ще вземеш 100/100.

Задачата може да бъде решена и с sprintf(); по следния начин - https://pastebin.com/S1LVTHdH

 

Хубаво е имената на променливите ти да са camelCase. Да започват с малка буква и само всяка нова дума с Голяма първа буква. $primernaPromenliva.


Ако имаш въпроси питай.

Надявам се да съм бил полезен.

2
21/01/2018 14:20:08
ad2bg avatar ad2bg 123 Точки

Когато $Difference ти се получи < 0, с минуса ли трябва да се изведе? Само питам...

0
m.mihaylov avatar m.mihaylov 3 Точки

$difference никога не е по-малък от нула, защото, както в if-а е равен на по-голямото минус по-малкото, така и в else-а. 

0
ad2bg avatar ad2bg 123 Точки

Да, прав си, извинявай, недоглеждане от моя страна.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.