mirror of
https://github.com/PaddiM8/kalker.git
synced 2024-12-13 10:00:51 +01:00
Trimming trailing zeroes for non-rug numbers
This commit is contained in:
parent
4334c40c3e
commit
4fe8f8b77c
@ -51,7 +51,10 @@ impl KalkNum {
|
|||||||
|
|
||||||
#[wasm_bindgen(js_name = toString)]
|
#[wasm_bindgen(js_name = toString)]
|
||||||
pub fn to_string(&self) -> String {
|
pub fn to_string(&self) -> String {
|
||||||
self.value.to_string()
|
self.value
|
||||||
|
.to_string()
|
||||||
|
.trim_end_matches('0')
|
||||||
|
.trim_end_matches('.')
|
||||||
}
|
}
|
||||||
|
|
||||||
#[wasm_bindgen(js_name = toStringBig)]
|
#[wasm_bindgen(js_name = toStringBig)]
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
<svelte:options tag="kalk-calculator" />
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { afterUpdate } from "svelte";
|
import { afterUpdate } from "svelte";
|
||||||
import type { Context } from "@paddim8/kalk";
|
import type { Context } from "@paddim8/kalk";
|
||||||
@ -57,7 +59,7 @@
|
|||||||
try {
|
try {
|
||||||
if (!kalkContext) kalkContext = new kalk.Context();
|
if (!kalkContext) kalkContext = new kalk.Context();
|
||||||
const result = kalkContext.evaluate(input) ?? "";
|
const result = kalkContext.evaluate(input) ?? "";
|
||||||
if (result) {
|
if (result && result.getValue() != 0) {
|
||||||
const sciNot = result.toScientificNotation();
|
const sciNot = result.toScientificNotation();
|
||||||
if (sciNot.exponent > 7 || sciNot.exponent < -6) {
|
if (sciNot.exponent > 7 || sciNot.exponent < -6) {
|
||||||
return [sciNot.toString(), true];
|
return [sciNot.toString(), true];
|
||||||
@ -315,6 +317,65 @@
|
|||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<div class="calculator" bind:this={calculatorElement}>
|
||||||
|
<section class="output" bind:this={outputElement}>
|
||||||
|
<slot />
|
||||||
|
{#each outputLines as line}
|
||||||
|
<console-line byuser={line[1]}>
|
||||||
|
{#if line[1]}
|
||||||
|
<span style="color: {promptcolor}">>></span>
|
||||||
|
{/if}
|
||||||
|
{@html line[0]}
|
||||||
|
</console-line>
|
||||||
|
{/each}
|
||||||
|
</section>
|
||||||
|
<section class="input-area">
|
||||||
|
<span class="prompt" style="color: {promptcolor}">>> </span>
|
||||||
|
{#await import("@paddim8/kalk")}
|
||||||
|
<span>Loading...</span>
|
||||||
|
{:then kalk}
|
||||||
|
<div
|
||||||
|
type="text"
|
||||||
|
contenteditable="true"
|
||||||
|
class="input"
|
||||||
|
placeholder={hinttext}
|
||||||
|
autocomplete="off"
|
||||||
|
autocorrect="off"
|
||||||
|
autocapitalize="off"
|
||||||
|
spellcheck="false"
|
||||||
|
use:focus
|
||||||
|
bind:this={inputElement}
|
||||||
|
on:keydown={(event) => handleKeyDown(event, kalk)}
|
||||||
|
on:keyup={handleKeyUp}
|
||||||
|
on:input={handleInput}
|
||||||
|
role="textbox"
|
||||||
|
/>
|
||||||
|
{:catch error}
|
||||||
|
<span style="color: {errorcolor}">{error}</span>
|
||||||
|
{/await}
|
||||||
|
</section>
|
||||||
|
{#if buttonpanel}
|
||||||
|
<section class="button-panel">
|
||||||
|
<button
|
||||||
|
class="arrow left"
|
||||||
|
on:click={(e) => handleArrowClick(e, true)}>←</button
|
||||||
|
>
|
||||||
|
{#each buttonRowValues as value}
|
||||||
|
<button on:click={handleButtonClick}>{value}</button>
|
||||||
|
{/each}
|
||||||
|
<button
|
||||||
|
class="arrow right"
|
||||||
|
on:click={(e) => handleArrowClick(e, false)}>→</button
|
||||||
|
>
|
||||||
|
{#if numberrow}
|
||||||
|
{#each numberRowValues as value}
|
||||||
|
<button on:click={handleButtonClick}>{value}</button>
|
||||||
|
{/each}
|
||||||
|
{/if}
|
||||||
|
</section>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
.calculator {
|
.calculator {
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -429,60 +490,3 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<svelte:options tag="kalk-calculator" />
|
|
||||||
<div class="calculator" bind:this={calculatorElement}>
|
|
||||||
<section class="output" bind:this={outputElement}>
|
|
||||||
<slot />
|
|
||||||
{#each outputLines as line}
|
|
||||||
<console-line byuser={line[1]}>
|
|
||||||
{#if line[1]}
|
|
||||||
<span style="color: {promptcolor}">>></span>
|
|
||||||
{/if}
|
|
||||||
{@html line[0]}
|
|
||||||
</console-line>
|
|
||||||
{/each}
|
|
||||||
</section>
|
|
||||||
<section class="input-area">
|
|
||||||
<span class="prompt" style="color: {promptcolor}">>> </span>
|
|
||||||
{#await import('@paddim8/kalk')}
|
|
||||||
<span>Loading...</span>
|
|
||||||
{:then kalk}
|
|
||||||
<div
|
|
||||||
type="text"
|
|
||||||
contenteditable="true"
|
|
||||||
class="input"
|
|
||||||
placeholder={hinttext}
|
|
||||||
autocomplete="off"
|
|
||||||
autocorrect="off"
|
|
||||||
autocapitalize="off"
|
|
||||||
spellcheck="false"
|
|
||||||
use:focus
|
|
||||||
bind:this={inputElement}
|
|
||||||
on:keydown={(event) => handleKeyDown(event, kalk)}
|
|
||||||
on:keyup={handleKeyUp}
|
|
||||||
on:input={handleInput}
|
|
||||||
role="textbox" />
|
|
||||||
{:catch error}
|
|
||||||
<span style="color: {errorcolor}">{error}</span>
|
|
||||||
{/await}
|
|
||||||
</section>
|
|
||||||
{#if buttonpanel}
|
|
||||||
<section class="button-panel">
|
|
||||||
<button
|
|
||||||
class="arrow left"
|
|
||||||
on:click={(e) => handleArrowClick(e, true)}>←</button>
|
|
||||||
{#each buttonRowValues as value}
|
|
||||||
<button on:click={handleButtonClick}>{value}</button>
|
|
||||||
{/each}
|
|
||||||
<button
|
|
||||||
class="arrow right"
|
|
||||||
on:click={(e) => handleArrowClick(e, false)}>→</button>
|
|
||||||
{#if numberrow}
|
|
||||||
{#each numberRowValues as value}
|
|
||||||
<button on:click={handleButtonClick}>{value}</button>
|
|
||||||
{/each}
|
|
||||||
{/if}
|
|
||||||
</section>
|
|
||||||
{/if}
|
|
||||||
</div>
|
|
||||||
|
Loading…
Reference in New Issue
Block a user